#include"RBTree.h"

template <class K>
class MySet
{
public:
	struct Setgetfirst
	{
		const K& operator() (const K& key)
		{
			return key;
		}
	};
	typedef RBTree<K, K ,Setgetfirst> mySet;
	typedef typename RBTree<K, K, Setgetfirst>::my_Iterator set_iterator;
private:
	mySet _root;

public:
	MySet()
		:_root(RBTree<K, K, Setgetfirst>())
	{}

	set_iterator begin()
	{
		return _root.begin();
	}

	set_iterator end()
	{
		return _root.end();
	}


	bool Insert(const K& val)
	{
		return _root.Insert(val);
	}
};